package com.translate.web.param;

import java.math.BigDecimal;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import com.translate.web.constant.ValidateCondtionAndMessage;
import com.translate.web.param.contract.ITranslateAddParam;

public class TranslateAddParam implements ITranslateAddParam {// 用户id
	private int userId;
	// 用户姓名 （冗余）
	private String userName;
	// 手机号（冗余）
	private String mobile;
	// 关联id
	@NotNull
	@Min(value = ValidateCondtionAndMessage.MIN_ID, message = ValidateCondtionAndMessage.MIN_ID_MSG)
	private Integer assocId;
	
	// 充值单号
	private String orderSn;
	// 发票类型 0 预存发票 1 订单发票
	@NotNull
	@Min(value = ValidateCondtionAndMessage.MIN_STATUS, message = ValidateCondtionAndMessage.MIN_STATUS_MSG)
	@Max(value = ValidateCondtionAndMessage.MAX_STATUS, message = ValidateCondtionAndMessage.MAX_STATUS_MSG)
	private Byte type;
	// 邮箱
	@NotNull
	@Pattern(regexp = ValidateCondtionAndMessage.EMAIL_PATTERN, message = ValidateCondtionAndMessage.EMAIL_PATTERN_MSG)
	private String email;
	// 税号
	@Pattern(regexp = ValidateCondtionAndMessage.CHINESE_ENGLISH_NUMBER_UNDERLINE_BY_SERIESDESCRIPTION, 
			message = "请输入含有中文数字下划线英文的的税号")
	private String dutyParagraph = "";
	// 发票抬头
	@NotNull
	@Pattern(regexp = ValidateCondtionAndMessage.CHINESE_ENGLISH_NUMBER_UNDERLINE_BY_SERIESDESCRIPTION, 
	message = "请输入含有中文数字下划线英文的发票抬头")
	private String invoiceHeader;
	// 发票内容(0= 论文润色费,1=翻译费,2= 文献检索服务费用,3=信息服务费用)
	@NotNull
	@Min(value = ValidateCondtionAndMessage.MIN_STATUS, message = ValidateCondtionAndMessage.MIN_STATUS_MSG)
	@Max(value = 20, message = "发票内容最大是20")
	private Byte invoiceContent;
	// 发票抬头类型 (0 =个人,1= 企业)
	@NotNull
	@Min(value = ValidateCondtionAndMessage.MIN_STATUS, message = ValidateCondtionAndMessage.MIN_STATUS_MSG)
	@Max(value = ValidateCondtionAndMessage.MAX_STATUS, message = ValidateCondtionAndMessage.MAX_STATUS_MSG)
	private Byte invoiceHeaderType;
	// 开票金额

	private BigDecimal money;
	
	private Integer serviceId;
	

	public Integer getUserId() {
		return userId;
	}

	public void setUserId(Integer userId) {
		this.userId = userId;
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName == null ? null : userName.trim();
	}

	public String getMobile() {
		return mobile;
	}

	public void setMobile(String mobile) {
		this.mobile = mobile == null ? null : mobile.trim();
	}

	public Integer getAssocId() {
		return assocId;
	}

	public void setAssocId(Integer assocId) {
		this.assocId = assocId;
	}

	public String getOrderSn() {
		return orderSn;
	}

	public void setOrderSn(String orderSn) {
		this.orderSn = orderSn == null ? null : orderSn.trim();
	}

	public Byte getType() {
		return type;
	}

	public void setType(Byte type) {
		this.type = type;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email == null ? null : email.trim();
	}

	public String getDutyParagraph() {
		return dutyParagraph;
	}

	public void setDutyParagraph(String dutyParagraph) {
		this.dutyParagraph = dutyParagraph == null ? null : dutyParagraph.trim();
	}

	public String getInvoiceHeader() {
		return invoiceHeader;
	}

	public void setInvoiceHeader(String invoiceHeader) {
		this.invoiceHeader = invoiceHeader == null ? null : invoiceHeader.trim();
	}

	public Byte getInvoiceContent() {
		return invoiceContent;
	}

	public void setInvoiceContent(Byte invoiceContent) {
		this.invoiceContent = invoiceContent;
	}

	public Byte getInvoiceHeaderType() {
		return invoiceHeaderType;
	}

	public void setInvoiceHeaderType(Byte invoiceHeaderType) {
		this.invoiceHeaderType = invoiceHeaderType;
	}

	public BigDecimal getMoney() {
		return money;
	}

	public void setMoney(BigDecimal money) {
		this.money = money;
	}

	public Integer getServiceId() {
		return serviceId;
	}

	public void setServiceId(Integer serviceId) {
		this.serviceId = serviceId;
	}
}